home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / gui / uberwidgets / UberProgressBar.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  5KB  |  113 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. from gui.textutil import GetTextExtent, default_font
  6. from util import do, try_this
  7. from gui import skin
  8. from cgui import SplitImage4
  9. from gui.windowfx import ApplySmokeAndMirrors
  10. from gui.skin.skinobjects import SkinColor
  11. from gui.uberwidgets import UberWidget
  12.  
  13. class UberProgressBar(wx.Gauge, UberWidget):
  14.     
  15.     def __init__(self, parent, id = -1, range = 100, skinkey = None, showlabel = False, style = wx.GA_SMOOTH, pos = wx.DefaultPosition, size = wx.DefaultSize):
  16.         wx.Gauge.__init__(self, parent, -1, range, pos, size, style)
  17.         self.style = style
  18.         self.range = range
  19.         self.value = 0
  20.         self.showlabel = showlabel
  21.         events = [
  22.             (wx.EVT_PAINT, self.OnPaint),
  23.             (wx.EVT_ERASE_BACKGROUND, self.OnBGPaint),
  24.             (wx.EVT_SIZE, self.OnSize)]
  25.         (do,)((lambda .0: for event, method in .0:
  26. self.Bind(event, method))(events))
  27.         self.SetSkinKey(skinkey, True)
  28.         self.Calcumalate()
  29.  
  30.     
  31.     def UpdateSkin(self):
  32.         key = self.skinkey
  33.         
  34.         s = lambda k, default = (sentinel,): skin.get(key + '.' + k, default)
  35.         mode = (try_this,)((lambda : str(s('mode', ''))), '')
  36.         if key and mode.lower() != 'native':
  37.             self.native = False
  38.             self.repeat = (try_this,)((lambda : str(s('style', '')).lower()), '') == 'repeat'
  39.             self.padding = s('padding', 0)
  40.             self.Font = s('font', (lambda : default_font()))
  41.             self.bg = s('backgrounds.normal', None)
  42.             self.fg = s('backgrounds.fill', (lambda : SkinColor(wx.BLUE)))
  43.             self.normalfc = s('fontcolors.normal', wx.BLACK)
  44.             self.fillfc = s('fontcolors.fill', wx.WHITE)
  45.         else:
  46.             self.native = True
  47.         self.OnSize()
  48.  
  49.     
  50.     def OnSize(self, event = None):
  51.         if not (self.native) and isinstance(self.bg, SplitImage4):
  52.             ApplySmokeAndMirrors(self, self.bg.GetBitmap(self.Size))
  53.         else:
  54.             ApplySmokeAndMirrors(self)
  55.  
  56.     
  57.     def OnBGPaint(self, event):
  58.         if self.native:
  59.             event.Skip()
  60.         
  61.  
  62.     
  63.     def OnPaint(self, event):
  64.         if self.native:
  65.             event.Skip()
  66.             return None
  67.         
  68.         dc = wx.BufferedPaintDC(self)
  69.         rect = wx.RectS(self.Size)
  70.         if self.bg:
  71.             self.bg.Draw(dc, rect)
  72.         
  73.         rect.width = int((float(self.value) / float(self.range)) * self.Size.x)
  74.         if self.repeat:
  75.             curser = wx.Point(self.padding, 0)
  76.             while curser.x < self.fill:
  77.                 self.fg.Draw(dc, wx.RectPS(curser, (self.fg.width, rect.height)))
  78.                 curser.x += self.fg.width + self.padding
  79.                 continue
  80.                 curser
  81.         else:
  82.             self.fg.Draw(dc, wx.RectS((self.fill, rect.height)))
  83.  
  84.     
  85.     def Calcumalate(self):
  86.         if self.native:
  87.             return None
  88.         
  89.         self.fill = self.Size.width * (float(self.value) / float(self.range))
  90.         self.Refresh()
  91.  
  92.     
  93.     def SetRange(self, range):
  94.         self.range = range
  95.         wx.Gauge.SetRange(self, range)
  96.         self.Calcumalate()
  97.  
  98.     
  99.     def SetValue(self, value):
  100.         self.value = value
  101.         wx.Gauge.SetValue(self, value)
  102.         self.Calcumalate()
  103.  
  104.     
  105.     def GetRange(self):
  106.         return self.range
  107.  
  108.     
  109.     def GetValue(self):
  110.         return self.value
  111.  
  112.  
  113.